home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 17.9 KB | 565 lines | [TEXT/MPS ] |
- (*
- File: Controls.mod
-
- Contains: Control Manager interfaces
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED OLDROUTINENAMES*)
- (*$SET OLDROUTINENAMES FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Controls;
-
- IMPORT SYSTEM, Types, Quickdraw, Menus;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
- (*$IF UNDEFINED STRICT_CONTROLS *)
- (*$SET STRICT_CONTROLS FALSE*)
- (*$END*)
-
- CONST
- pushButProc* = 0;
- checkBoxProc* = 1;
- radioButProc* = 2;
- scrollBarProc* = 16;
- popupMenuProc* = 1008;
-
- kControlUsesOwningWindowsFontVariant* = ASH(1,3); (* Control uses owning windows font to display text*)
-
- (*$IF OLDROUTINENAMES *)
- useWFont* = 8;
-
- (*$END*)
-
- TYPE
- ControlPartCode* = Types.SInt16;
-
-
- CONST
- kControlNoPart* = 0;
- kControlLabelPart* = 1;
- kControlMenuPart* = 2;
- kControlTrianglePart* = 4;
- kControlButtonPart* = 10;
- kControlCheckBoxPart* = 11;
- kControlRadioButtonPart* = 11;
- kControlUpButtonPart* = 20;
- kControlDownButtonPart* = 21;
- kControlPageUpPart* = 22;
- kControlPageDownPart* = 23;
- kControlIndicatorPart* = 129;
- kControlDisabledPart* = 254;
- kControlInactivePart* = 255;
-
- (*$IF OLDROUTINENAMES *)
- inLabel* = 1;
- inMenu* = 2;
- inTriangle* = 4;
- inButton* = 10;
- inCheckBox* = 11;
- inUpButton* = 20;
- inDownButton* = 21;
- inPageUp* = 22;
- inPageDown* = 23;
- inThumb* = 129;
-
- (*$END*)
- kControlCheckboxUncheckedValue* = 0;
- kControlCheckboxCheckedValue* = 1;
- kControlCheckboxMixedValue* = 2;
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • RADIO BUTTON VALUES*)
- (**)
- (*_________________________________________________________________________________________________________*)
- kControlRadioButtonUncheckedValue* = 0;
- kControlRadioButtonCheckedValue* = 1;
- kControlRadioButtonMixedValue* = 2;
-
- popupFixedWidth* = ASH(1,0);
- popupVariableWidth* = ASH(1,1);
- popupUseAddResMenu* = ASH(1,2);
- popupUseWFont* = ASH(1,3);
-
- (**)
- (* Menu label styles for the System 7 pop-up menu *)
- (**)
- popupTitleBold* = ASH(1,8);
- popupTitleItalic* = ASH(1,9);
- popupTitleUnderline* = ASH(1,10);
- popupTitleOutline* = ASH(1,11);
- popupTitleShadow* = ASH(1,12);
- popupTitleCondense* = ASH(1,13);
- popupTitleExtend* = ASH(1,14);
- popupTitleNoStyle* = ASH(1,15);
-
- (**)
- (* Menu label justifications for the System 7 pop-up menu*)
- (**)
- popupTitleLeftJust* = $00000000;
- popupTitleCenterJust* = $00000001;
- popupTitleRightJust* = $000000FF;
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • CONTROL DRAGGRAYRGN CONSTANTS*)
- (**)
- noConstraint* = Quickdraw.kNoConstraint;
- hAxisOnly* = 1;
- vAxisOnly* = 2;
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • CONTROL COLOR TABLE PART CODES*)
- (**)
- cFrameColor* = 0;
- cBodyColor* = 1;
- cTextColor* = 2;
- cThumbColor* = 3;
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • CONTROL TYPE DECLARATIONS*)
- (**)
- (*_________________________________________________________________________________________________________*)
- (**)
- (* Define ControlRef and ControlHandle*)
- (**)
- (*$IF STRICT_CONTROLS *)
-
- TYPE
- ControlRef* = Types.Ptr;
-
- ControlHandle* = ControlRef;
-
- (*$ELSE*)
-
- TYPE
- ControlPtr* = POINTER TO ControlRecord;
- ControlHandle* = HANDLE TO ControlRecord (*ΔΔ POINTER TO ControlPtr*);
-
- ControlRef* = ControlHandle;
-
- (*$END*)
- ControlActionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theControl: ControlRef; partCode: ControlPartCode);
- ControlActionUPP* = Types.UniversalProcPtr;
-
- CtlCTab* = RECORD
- ccSeed*: Types.SInt32;
- ccRider*: Types.SInt16;
- ctSize*: Types.SInt16;
- ctTable*: ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF Quickdraw.ColorSpec;
- END;
-
- CCTabPtr* = POINTER TO CtlCTab;
- CCTabHandle* = HANDLE TO CtlCTab (*ΔΔ POINTER TO CCTabPtr*);
-
- (*$IF NOT STRICT_CONTROLS *)
- ControlRecord* = (*ΔΔPACKEDΔΔ*) RECORD
- nextControl*: ControlRef;
- contrlOwner*: Quickdraw.WindowRef;
- contrlRect*: Types.Rect;
- contrlVis*: Types.UInt8;
- contrlHilite*: Types.UInt8;
- contrlValue*: Types.SInt16;
- contrlMin*: Types.SInt16;
- contrlMax*: Types.SInt16;
- contrlDefProc*: Types.Handle;
- contrlData*: Types.Handle;
- contrlAction*: ControlActionUPP;
- contrlRfCon*: Types.SInt32;
- contrlTitle*: Types.Str255;
- END;
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • AUXILLARY CONTROL RECORD STRUCTURE*)
- (**)
- (*_________________________________________________________________________________________________________*)
- AuxCtlRec* = RECORD
- acNext*: Types.Handle;
- acOwner*: ControlRef;
- acCTable*: CCTabHandle;
- acFlags*: Types.SInt16;
- acReserved*: Types.SInt32;
- acRefCon*: Types.SInt32;
- END;
-
- AuxCtlPtr* = POINTER TO AuxCtlRec;
- AuxCtlHandle* = HANDLE TO AuxCtlRec (*ΔΔ POINTER TO AuxCtlPtr*);
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • POP-UP MENU PRIVATE DATA STRUCTURE*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PopupPrivateData* = RECORD
- mHandle*: Menus.MenuHandle;
- mID*: Types.SInt16;
- END;
-
- PopupPrivateDataPtr* = POINTER TO PopupPrivateData;
- PopupPrivateDataHandle* = HANDLE TO PopupPrivateData (*ΔΔ POINTER TO PopupPrivateDataPtr*);
-
- (*$END*)
-
- CONST
- uppControlActionProcInfo* = $000002C0; (* PROCEDURE (4 byte param, 2 byte param); *)
-
- PROCEDURE NewControlActionProc*(userRoutine: ControlActionProcPtr): ControlActionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallControlActionProc*(theControl: ControlRef; partCode: ControlPartCode; userRoutine: ControlActionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE NewControl*(theWindow: Quickdraw.WindowRef; (*CONST*)VAR boundsRect: Types.Rect; title: Types.ConstStr255Param; visible: BOOLEAN; value: Types.SInt16; min: Types.SInt16; max: Types.SInt16; procID: Types.SInt16; refCon: Types.SInt32): ControlRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A954;
- (*$END*)
- PROCEDURE GetNewControl*(controlID: Types.SInt16; owner: Quickdraw.WindowRef): ControlRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A9BE;
- (*$END*)
- PROCEDURE DisposeControl*(theControl: ControlRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A955;
- (*$END*)
- PROCEDURE KillControls*(theWindow: Quickdraw.WindowRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A956;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL SHOWING/HIDING API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE ShowControl*(theControl: ControlRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A957;
- (*$END*)
- PROCEDURE HideControl*(theControl: ControlRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A958;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL DRAWING API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE DrawControls*(theWindow: Quickdraw.WindowRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A969;
- (*$END*)
- PROCEDURE Draw1Control*(theControl: ControlRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96D;
- (*$END*)
- PROCEDURE UpdateControls*(theWindow: Quickdraw.WindowRef; updateRgn: Quickdraw.RgnHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A953;
- (*$END*)
- PROCEDURE HiliteControl*(theControl: ControlRef; hiliteState: ControlPartCode);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95D;
- (*$END*)
- PROCEDURE TrackControl*(theControl: ControlRef; thePoint: Types.Point; actionProc: ControlActionUPP): ControlPartCode;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A968;
- (*$END*)
- PROCEDURE DragControl*(theControl: ControlRef; startPt: Types.Point; (*CONST*)VAR limitRect: Types.Rect; (*CONST*)VAR slopRect: Types.Rect; axis: Quickdraw.DragConstraint);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A967;
- (*$END*)
- PROCEDURE TestControl*(theControl: ControlRef; thePt: Types.Point): ControlPartCode;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A966;
- (*$END*)
- PROCEDURE FindControl*(thePoint: Types.Point; theWindow: Quickdraw.WindowRef; VAR theControl: ControlRef): ControlPartCode;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96C;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL MOVING/SIZING API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE MoveControl*(theControl: ControlRef; h: Types.SInt16; v: Types.SInt16);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A959;
- (*$END*)
- PROCEDURE SizeControl*(theControl: ControlRef; w: Types.SInt16; h: Types.SInt16);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95C;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL TITLE API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE SetControlTitle*(theControl: ControlRef; title: Types.ConstStr255Param);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95F;
- (*$END*)
- PROCEDURE GetControlTitle*(theControl: ControlRef; VAR title: Types.Str255);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95E;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL VALUE, MIMIMUM, AND MAXIMUM API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE GetControlValue*(theControl: ControlRef): Types.SInt16;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A960;
- (*$END*)
- PROCEDURE SetControlValue*(theControl: ControlRef; newValue: Types.SInt16);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A963;
- (*$END*)
- PROCEDURE GetControlMinimum*(theControl: ControlRef): Types.SInt16;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A961;
- (*$END*)
- PROCEDURE SetControlMinimum*(theControl: ControlRef; newMinimum: Types.SInt16);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A964;
- (*$END*)
- PROCEDURE GetControlMaximum*(theControl: ControlRef): Types.SInt16;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A962;
- (*$END*)
- PROCEDURE SetControlMaximum*(theControl: ControlRef; newMaximum: Types.SInt16);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A965;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL VARIANT AND WINDOW INFORMATION API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE GetControlVariant*(theControl: ControlRef): Types.SInt16;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A809;
- (*$END*)
- PROCEDURE SetControlAction*(theControl: ControlRef; actionProc: ControlActionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96B;
- (*$END*)
- PROCEDURE GetControlAction*(theControl: ControlRef): ControlActionUPP;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96A;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONTROL ACCESSOR API'S*)
- (**)
- (*_________________________________________________________________________________________________________*)
- PROCEDURE SetControlReference*(theControl: ControlRef; data: Types.SInt32);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95B;
- (*$END*)
- PROCEDURE GetControlReference*(theControl: ControlRef): Types.SInt32;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95A;
- (*$END*)
- (*$IF NOT STRICT_CONTROLS *)
- PROCEDURE GetAuxiliaryControlRecord*(theControl: ControlRef; VAR acHndl: AuxCtlHandle): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA44;
- (*$END*)
- (*$END*)
- PROCEDURE SetControlColor*(theControl: ControlRef; newColorTable: CCTabHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA43;
- (*$END*)
-
- TYPE
- ControlDefProcMessage* = Types.SInt16;
-
-
- CONST
- drawCntl* = 0;
- testCntl* = 1;
- calcCRgns* = 2;
- initCntl* = 3;
- dispCntl* = 4;
- posCntl* = 5;
- thumbCntl* = 6;
- dragCntl* = 7;
- autoTrack* = 8;
- calcCntlRgn* = 10;
- calcThumbRgn* = 11;
- drawThumbOutline* = 12;
-
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • MAIN ENTRY POINT FOR LONG("CDEF")*)
- (**)
- TYPE
- ControlDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (varCode: Types.SInt16; theControl: ControlRef; message: ControlDefProcMessage; param: Types.SInt32): Types.SInt32;
- ControlDefUPP* = Types.UniversalProcPtr;
-
- CONST
- uppControlDefProcInfo* = $00003BB0; (* PROCEDURE (2 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; *)
-
- PROCEDURE NewControlDefProc*(userRoutine: ControlDefProcPtr): ControlDefUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallControlDefProc*(varCode: Types.SInt16; theControl: ControlRef; message: ControlDefProcMessage; param: Types.SInt32; userRoutine: ControlDefUPP): Types.SInt32;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONSTANTS FOR DRAWCNTL MESSAGE PASSED IN PARAM*)
- (**)
- (*_________________________________________________________________________________________________________*)
-
- CONST
- kDrawControlEntireControl* = 0;
- kDrawControlIndicatorOnly* = 129;
-
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • CONSTANTS FOR DRAGCNTL MESSAGE PASSED IN PARAM*)
- (**)
- (*_________________________________________________________________________________________________________*)
- kDragControlEntireControl* = 0;
-
- (*_________________________________________________________________________________________________________*)
- (* *)
- (* • DRAG CONSTRAINT STRUCTURE PASSED IN PARAM FOR THUMBCNTL MESSAGE (IM I-332)*)
- (**)
- (*_________________________________________________________________________________________________________*)
-
- TYPE
- IndicatorDragConstraint* = RECORD
- limitRect*: Types.Rect;
- slopRect*: Types.Rect;
- axis*: Quickdraw.DragConstraint;
- END;
-
- IndicatorDragConstraintPtr* = POINTER TO IndicatorDragConstraint;
- IndicatorDragConstraintHandle* = HANDLE TO IndicatorDragConstraint (*ΔΔ POINTER TO IndicatorDragConstraintPtr*);
-
- (*_________________________________________________________________________________________________________*)
- (**)
- (* • OLD ROUTINE NAMES*)
- (**)
- (* These are provided for compatiblity with older source bases. It is recommended to not use them since*)
- (* they may removed from this interface file at any time.*)
- (**)
- (*_________________________________________________________________________________________________________*)
- (*$IF OLDROUTINENAMES *)
-
- CONST
- kNoHiliteControlPart* = 0;
- kInLabelControlPart* = 1;
- kInMenuControlPart* = 2;
- kInTriangleControlPart* = 4;
- kInButtonControlPart* = 10;
- kInCheckBoxControlPart* = 11;
- kInUpButtonControlPart* = 20;
- kInDownButtonControlPart* = 21;
- kInPageUpControlPart* = 22;
- kInPageDownControlPart* = 23;
- kInIndicatorControlPart* = 129;
- kReservedControlPart* = 254;
- kControlInactiveControlPart* = 255;
-
- (*$END*)
- (*$IF OLDROUTINENAMES *)
-
- PROCEDURE SetCTitle*(theControl: ControlRef; title: Types.ConstStr255Param);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95F;
- (*$END*)
- PROCEDURE GetCTitle*(theControl: ControlRef; VAR title: Types.Str255);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95E;
- (*$END*)
- PROCEDURE UpdtControl*(theWindow: Quickdraw.WindowRef; updateRgn: Quickdraw.RgnHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A953;
- (*$END*)
- (*$IF NOT STRICT_CONTROLS *)
- PROCEDURE SetCtlValue*(theControl: ControlRef; theValue: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A963;
- (*$END*)
- PROCEDURE GetCtlValue*(theControl: ControlRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A960;
- (*$END*)
- PROCEDURE SetCtlMin*(theControl: ControlRef; minValue: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A964;
- (*$END*)
- PROCEDURE GetCtlMin*(theControl: ControlRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A961;
- (*$END*)
- PROCEDURE SetCtlMax*(theControl: ControlRef; maxValue: INTEGER);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A965;
- (*$END*)
- PROCEDURE GetCtlMax*(theControl: ControlRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A962;
- (*$END*)
- (*$END*)
- PROCEDURE SetCRefCon*(theControl: ControlRef; data: LONGINT);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95B;
- (*$END*)
- PROCEDURE GetCRefCon*(theControl: ControlRef): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A95A;
- (*$END*)
- PROCEDURE SetCtlAction*(theControl: ControlRef; actionProc: ControlActionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96B;
- (*$END*)
- PROCEDURE GetCtlAction*(theControl: ControlRef): ControlActionUPP;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A96A;
- (*$END*)
- PROCEDURE SetCtlColor*(theControl: ControlRef; newColorTable: CCTabHandle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $AA43;
- (*$END*)
- PROCEDURE GetCVariant*(theControl: ControlRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A809;
- (*$END*)
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Controls.
-